Many communication protocols use packets to convey data and control information over a communication link or through a communication network. A packet includes fields for the data and control information. To simplify the implementation of communication protocols, many communication protocols use a fixed format for the fields. However, fixed formats limit the capabilities and performance of an implementation of a communication protocol. For example, infrequently needed fields must be included in all packets.
A communication protocol can be implemented using a pipeline of stages, with each packet being partially processed in each stage of the pipeline. High performance operation is achievable by distributing the processing of the communication protocol across the stages. With a fixed format, the fields of the packets are readily identified. However, pipelines are difficult and time consuming to implement when the format is not fixed, because the position of the fields is variable.
A communication protocol can be implemented using a processor. With a fixed format, simple data structures can describe the packet formation. More complex data structures can describe a format that is not fixed; however, it is difficult and time consuming to create these complex data structures. In addition, the processor frequently becomes a bottleneck preventing high performance operation.
The present invention may address one or more of the above issues.